package cn.tedu.net.collection.oop;
//本类用于测试抽象类中的成员
public class Test4_Abstarct3 {
    public static void main(String[] args) {
        Fruit f =new Apple();
//        f.name="撒打算";//常量的值不可以被修改
        System.out.println(f.name);
        f.sum = 20;
        System.out.println(f.sum);
        f.eat();
        f.clean();
        f.eat2();
    }
}
//创建抽象父类水果类
abstract class Fruit{
    //抽象类中可以有成员变量
    int sum =10;
    //抽象类中可以有成员常量
    final String name ="banana";
    //创建抽象类的普通方法 抽象类都可以是普通方法
    //如果一个类中都是普通方法,为啥海奥被声明成抽象类呢?
    //抽象类不可以创建对象,如果不想让外界创建本类对象,可以把普通类声明成抽象类
    public void eat(){
        System.out.println("吃啥水果都行");
    }
    //抽象类中可以有抽象方法,这个类必须被声明成一个抽象类
    public abstract void clean();
    public abstract void eat2();
}
//创建子类苹果类
class Apple extends Fruit{
    @Override
    public void clean() {
        System.out.println("苹果要洗");
    }

    @Override
    public void eat2() {
        System.out.println("爱吃苹果");
    }
}

